home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2008 February / PCWFEB08.iso / Software / Resources / Developers / XAMPP 1.5.4 / Windows installer / xampp-win32-1.5.4-installer.exe / xampp / apache / conf / extra / httpd-ssl.conf < prev    next >
Encoding:
Text File  |  2005-12-24  |  10.8 KB  |  239 lines

  1. #
  2. # This is the Apache server configuration file providing SSL support.
  3. # It contains the configuration directives to instruct the server how to
  4. # serve pages over an https connection. For detailing information about these
  5. # directives see <URL:http://httpd.apache.org/docs/2.2/mod/mod_ssl.html>
  6. #
  7. # Do NOT simply read the instructions in here without understanding
  8. # what they do.  They're here only as hints or reminders.  If you are unsure
  9. # consult the online docs. You have been warned.
  10. #
  11.  
  12. #
  13. # Pseudo Random Number Generator (PRNG):
  14. # Configure one or more sources to seed the PRNG of the SSL library.
  15. # The seed data should be of good random quality.
  16. # WARNING! On some platforms /dev/random blocks if not enough entropy
  17. # is available. This means you then cannot use the /dev/random device
  18. # because it would lead to very long connection times (as long as
  19. # it requires to make more entropy available). But usually those
  20. # platforms additionally provide a /dev/urandom device which doesn't
  21. # block. So, if available, use this one instead. Read the mod_ssl User
  22. # Manual for more details.
  23. #
  24. #SSLRandomSeed startup file:/dev/random  512
  25. #SSLRandomSeed startup file:/dev/urandom 512
  26. #SSLRandomSeed connect file:/dev/random  512
  27. #SSLRandomSeed connect file:/dev/urandom 512
  28.  
  29.  
  30. #
  31. # When we also provide SSL we have to listen to the
  32. # standard HTTP port (see above) and to the HTTPS port
  33. #
  34. # Note: Configurations that use IPv6 but not IPv4-mapped addresses need two
  35. #       Listen directives: "Listen [::]:443" and "Listen 0.0.0.0:443"
  36. #
  37. Listen 443
  38.  
  39. ##
  40. ##  SSL Global Context
  41. ##
  42. ##  All SSL configuration in this context applies both to
  43. ##  the main server and all SSL-enabled virtual hosts.
  44. ##
  45.  
  46. #
  47. #   Some MIME-types for downloading Certificates and CRLs
  48. #
  49. AddType application/x-x509-ca-cert .crt
  50. AddType application/x-pkcs7-crl    .crl
  51.  
  52. #   Pass Phrase Dialog:
  53. #   Configure the pass phrase gathering process.
  54. #   The filtering dialog program (`builtin' is a internal
  55. #   terminal dialog) has to provide the pass phrase on stdout.
  56. SSLPassPhraseDialog  builtin
  57.  
  58. #   Inter-Process Session Cache:
  59. #   Configure the SSL Session Cache: First the mechanism
  60. #   to use and second the expiring timeout (in seconds).
  61. #SSLSessionCache        shmcb:logs/ssl_scache(512000)
  62. SSLSessionCache         dbm:logs/ssl.scache
  63. SSLSessionCacheTimeout  300
  64.  
  65. #   Semaphore:
  66. #   Configure the path to the mutual exclusion semaphore the
  67. #   SSL engine uses internally for inter-process synchronization.
  68. SSLMutex  default
  69.  
  70. ##
  71. ## SSL Virtual Host Context
  72. ##
  73.  
  74. <VirtualHost _default_:443>
  75.     #   General setup for the virtual host
  76.     DocumentRoot "/xampp/htdocs"
  77.  
  78.     ServerName localhost:443
  79.     ServerAdmin admin@localhost
  80.  
  81.     ErrorLog logs/error.log
  82.     <IfModule log_config_module>
  83.         CustomLog logs/access.log combined
  84.     </IfModule>
  85.  
  86.     #   SSL Engine Switch:
  87.     #   Enable/Disable SSL for this virtual host.
  88.     SSLEngine on
  89.  
  90.     #   SSL Cipher Suite:
  91.     #   List the ciphers that the client is permitted to negotiate.
  92.     #   See the mod_ssl documentation for a complete list.
  93.     SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
  94.  
  95.     #   Server Certificate:
  96.     #   Point SSLCertificateFile at a PEM encoded certificate.  If
  97.     #   the certificate is encrypted, then you will be prompted for a
  98.     #   pass phrase.  Note that a kill -HUP will prompt again.  Keep
  99.     #   in mind that if you have both an RSA and a DSA certificate you
  100.     #   can configure both in parallel (to also allow the use of DSA
  101.     #   ciphers, etc.)
  102.     #SSLCertificateFile conf/ssl.crt/snakeoil-rsa.crt
  103.     #SSLCertificateFile conf/ssl.crt/snakeoil-dsa.crt
  104.     SSLCertificateFile conf/ssl.crt/server.crt
  105.  
  106.     #   Server Private Key:
  107.     #   If the key is not combined with the certificate, use this
  108.     #   directive to point at the key file.  Keep in mind that if
  109.     #   you've both a RSA and a DSA private key you can configure
  110.     #   both in parallel (to also allow the use of DSA ciphers, etc.)
  111.     #SSLCertificateKeyFile conf/ssl.key/snakeoil-rsa.key
  112.     #SSLCertificateKeyFile conf/ssl.key/snakeoil-dsa.key
  113.     SSLCertificateKeyFile conf/ssl.key/server.key
  114.  
  115.     #   Server Certificate Chain:
  116.     #   Point SSLCertificateChainFile at a file containing the
  117.     #   concatenation of PEM encoded CA certificates which form the
  118.     #   certificate chain for the server certificate. Alternatively
  119.     #   the referenced file can be the same as SSLCertificateFile
  120.     #   when the CA certificates are directly appended to the server
  121.     #   certificate for convinience.
  122.     #SSLCertificateChainFile conf/ssl.crt/ca.crt
  123.  
  124.     #   Certificate Authority (CA):
  125.     #   Set the CA certificate verification path where to find CA
  126.     #   certificates for client authentication or alternatively one
  127.     #   huge file containing all of them (file must be PEM encoded)
  128.     #   Note: Inside SSLCACertificatePath you need hash symlinks
  129.     #         to point to the certificate files. Use the provided
  130.     #         Makefile to update the hash symlinks after changes.
  131.     #SSLCACertificatePath conf/ssl.crt
  132.     #SSLCACertificateFile conf/ssl.crt/ca-bundle.crt
  133.  
  134.     #   Certificate Revocation Lists (CRL):
  135.     #   Set the CA revocation path where to find CA CRLs for client
  136.     #   authentication or alternatively one huge file containing all
  137.     #   of them (file must be PEM encoded)
  138.     #   Note: Inside SSLCARevocationPath you need hash symlinks
  139.     #         to point to the certificate files. Use the provided
  140.     #         Makefile to update the hash symlinks after changes.
  141.     #SSLCARevocationPath conf/ssl.crl
  142.     #SSLCARevocationFile conf/ssl.crl/ca-bundle.crl
  143.  
  144.     #   Client Authentication (Type):
  145.     #   Client certificate verification type and depth.  Types are
  146.     #   none, optional, require and optional_no_ca.  Depth is a
  147.     #   number which specifies how deeply to verify the certificate
  148.     #   issuer chain before deciding the certificate is not valid.
  149.     #SSLVerifyClient require
  150.     #SSLVerifyDepth  10
  151.  
  152.     #   Access Control:
  153.     #   With SSLRequire you can do per-directory access control based
  154.     #   on arbitrary complex boolean expressions containing server
  155.     #   variable checks and other lookup directives.  The syntax is a
  156.     #   mixture between C and Perl.  See the mod_ssl documentation
  157.     #   for more details.
  158.     <Location />
  159.         #SSLRequire (    %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
  160.         #            and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
  161.         #            and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
  162.         #            and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
  163.         #            and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20       ) \
  164.         #           or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
  165.     </Location>
  166.  
  167.     #   SSL Engine Options:
  168.     #   Set various options for the SSL engine.
  169.     #   o FakeBasicAuth:
  170.     #     Translate the client X.509 into a Basic Authorisation.  This means that
  171.     #     the standard Auth/DBMAuth methods can be used for access control.  The
  172.     #     user name is the `one line' version of the client's X.509 certificate.
  173.     #     Note that no password is obtained from the user. Every entry in the user
  174.     #     file needs this password: `xxj31ZMTZzkVA'.
  175.     #   o ExportCertData:
  176.     #     This exports two additional environment variables: SSL_CLIENT_CERT and
  177.     #     SSL_SERVER_CERT. These contain the PEM-encoded certificates of the
  178.     #     server (always existing) and the client (only existing when client
  179.     #     authentication is used). This can be used to import the certificates
  180.     #     into CGI scripts.
  181.     #   o StdEnvVars:
  182.     #     This exports the standard SSL/TLS related `SSL_*' environment variables.
  183.     #     Per default this exportation is switched off for performance reasons,
  184.     #     because the extraction step is an expensive operation and is usually
  185.     #     useless for serving static content. So one usually enables the
  186.     #     exportation for CGI and SSI requests only.
  187.     #   o StrictRequire:
  188.     #     This denies access when "SSLRequireSSL" or "SSLRequire" applied even
  189.     #     under a "Satisfy any" situation, i.e. when it applies access is denied
  190.     #     and no other module can change it.
  191.     #   o OptRenegotiate:
  192.     #     This enables optimized SSL connection renegotiation handling when SSL
  193.     #     directives are used in per-directory context.
  194.     #SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
  195.     <FilesMatch "\.(cgi|shtml|phtml|php|php5|php4|php3)$">
  196.         SSLOptions +StdEnvVars
  197.     </FilesMatch>
  198.     <Directory "/xampp/apache/cgi-bin">
  199.         SSLOptions +StdEnvVars
  200.     </Directory>
  201.  
  202.     #   SSL Protocol Adjustments:
  203.     #   The safe and default but still SSL/TLS standard compliant shutdown
  204.     #   approach is that mod_ssl sends the close notify alert but doesn't wait for
  205.     #   the close notify alert from client. When you need a different shutdown
  206.     #   approach you can use one of the following variables:
  207.     #   o ssl-unclean-shutdown:
  208.     #     This forces an unclean shutdown when the connection is closed, i.e. no
  209.     #     SSL close notify alert is send or allowed to received.  This violates
  210.     #     the SSL/TLS standard but is needed for some brain-dead browsers. Use
  211.     #     this when you receive I/O errors because of the standard approach where
  212.     #     mod_ssl sends the close notify alert.
  213.     #   o ssl-accurate-shutdown:
  214.     #     This forces an accurate shutdown when the connection is closed, i.e. a
  215.     #     SSL close notify alert is send and mod_ssl waits for the close notify
  216.     #     alert of the client. This is 100% SSL/TLS standard compliant, but in
  217.     #     practice often causes hanging connections with brain-dead browsers. Use
  218.     #     this only for browsers where you know that their SSL implementation
  219.     #     works correctly.
  220.     #   Notice: Most problems of broken clients are also related to the HTTP
  221.     #   keep-alive facility, so you usually additionally want to disable
  222.     #   keep-alive for those clients, too. Use variable "nokeepalive" for this.
  223.     #   Similarly, one has to force some clients to use HTTP/1.0 to workaround
  224.     #   their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
  225.     #   "force-response-1.0" for this.
  226.     <IfModule setenvif_module>
  227.         BrowserMatch ".*MSIE.*" \
  228.                  nokeepalive ssl-unclean-shutdown \
  229.                  downgrade-1.0 force-response-1.0
  230.     </IfModule>
  231.  
  232.     #   Per-Server Logging:
  233.     #   The home of a custom SSL log file. Use this when you want a
  234.     #   compact non-error SSL logfile on a virtual host basis.
  235.     <IfModule log_config_module>
  236.         CustomLog logs/ssl_request.log \
  237.                   "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
  238.     </IfModule>
  239. </VirtualHost>